home *** CD-ROM | disk | FTP | other *** search
/ Champak 86 / (Vol 86) My Disc.iso / Interface / it.dig / scripts / __Packages / mx / controls / gridclasses / DataGridRow.as < prev   
Text File  |  2009-06-09  |  7KB  |  235 lines

  1. class mx.controls.gridclasses.DataGridRow extends mx.controls.listclasses.SelectableRow
  2. {
  3.    function DataGridRow()
  4.    {
  5.       super();
  6.    }
  7.    function createChildren(Void)
  8.    {
  9.       this.setupBG();
  10.       this.colBG = this.createEmptyMovieClip("colbG_mc",mx.controls.listclasses.SelectableRow.LOWEST_DEPTH + 1);
  11.    }
  12.    function init(Void)
  13.    {
  14.       super.init();
  15.       this.cells = new Array();
  16.    }
  17.    function size(Void)
  18.    {
  19.       if(this.cells.length != this.owner.columns.length)
  20.       {
  21.          this.createCells();
  22.       }
  23.       super.size();
  24.    }
  25.    function createCells(Void)
  26.    {
  27.       this.clearCells();
  28.       this.backGround.onRelease = this.startEditCell;
  29.       var _loc7_ = this.owner.columns.length;
  30.       var _loc2_ = 0;
  31.       while(_loc2_ < _loc7_)
  32.       {
  33.          var _loc4_ = this.owner.columns[_loc2_];
  34.          var _loc5_ = _loc4_.__cellRenderer;
  35.          if(_loc5_ != undefined)
  36.          {
  37.             if(typeof _loc5_ == "string")
  38.             {
  39.                var _loc0_ = null;
  40.                var _loc3_ = this.cells[_loc2_] = this.createObject(_loc5_,"fCell" + _loc2_,2 + _loc2_,{styleName:_loc4_});
  41.             }
  42.             else
  43.             {
  44.                var _loc0_ = null;
  45.                _loc3_ = this.cells[_loc2_] = this.createClassObject(_loc5_,"fCell" + _loc2_,2 + _loc2_,{styleName:_loc4_});
  46.             }
  47.          }
  48.          else
  49.          {
  50.             var _loc0_ = null;
  51.             _loc3_ = this.cells[_loc2_] = this.createLabel("fCell" + _loc2_,2 + _loc2_);
  52.             _loc3_.styleName = _loc4_;
  53.             _loc3_.selectable = false;
  54.             _loc3_.backGround = false;
  55.             _loc3_.border = false;
  56.             _loc3_._visible = false;
  57.             _loc3_.getPreferredHeight = this.cellGetPreferredHeight;
  58.          }
  59.          _loc3_.listOwner = this.owner;
  60.          _loc3_.columnIndex = _loc2_;
  61.          _loc3_.owner = this;
  62.          _loc3_.getCellIndex = this.getCellIndex;
  63.          _loc3_.getDataLabel = this.getDataLabel;
  64.          _loc2_ = _loc2_ + 1;
  65.       }
  66.    }
  67.    function cellGetPreferredHeight()
  68.    {
  69.       var _loc3_ = this.text;
  70.       this.text = "^g_p";
  71.       this.draw();
  72.       var _loc2_ = this.textHeight + 4;
  73.       this.text = _loc3_;
  74.       return _loc2_;
  75.    }
  76.    function getCellIndex(Void)
  77.    {
  78.       return {columnIndex:this.columnIndex,itemIndex:this.owner.rowIndex + this.listOwner.__vPosition};
  79.    }
  80.    function getDataLabel()
  81.    {
  82.       return this.listOwner.columns[this.columnIndex].columnName;
  83.    }
  84.    function clearCells()
  85.    {
  86.       var _loc2_ = 0;
  87.       while(_loc2_ < this.cells.length)
  88.       {
  89.          this.cells[_loc2_].removeTextField();
  90.          this.cells[_loc2_].removeMovieClip();
  91.          _loc2_ = _loc2_ + 1;
  92.       }
  93.       this.cells.splice(0);
  94.    }
  95.    function setValue(itmObj, state, transition)
  96.    {
  97.       var _loc7_ = this.owner.columns;
  98.       var _loc8_ = _loc7_.length;
  99.       var _loc3_ = 0;
  100.       while(_loc3_ < _loc8_)
  101.       {
  102.          var _loc6_ = this.cells[_loc3_];
  103.          var _loc4_ = _loc7_[_loc3_];
  104.          var _loc2_ = _loc4_.__labelFunction(itmObj);
  105.          if(_loc2_ == undefined)
  106.          {
  107.             _loc2_ = !(itmObj instanceof XMLNode) ? itmObj[_loc4_.columnName] : itmObj.attributes[_loc4_.columnName];
  108.          }
  109.          if(_loc2_ == undefined)
  110.          {
  111.             _loc2_ = " ";
  112.          }
  113.          _loc6_.setValue(_loc2_,itmObj,state);
  114.          _loc3_ = _loc3_ + 1;
  115.       }
  116.    }
  117.    function drawCell(cellNum, xPos, w, bgCol)
  118.    {
  119.       var _loc2_ = this.cells[cellNum];
  120.       _loc2_._x = xPos;
  121.       _loc2_._visible = true;
  122.       _loc2_.setSize(w - 2,Math.min(this.__height,_loc2_.getPreferredHeight()));
  123.       _loc2_._y = (this.__height - _loc2_.height) / 2;
  124.       if(bgCol != undefined)
  125.       {
  126.          var _loc3_ = Math.floor(xPos - 2);
  127.          var _loc4_ = Math.floor(_loc3_ + w);
  128.          this.colBG.moveTo(_loc3_,0);
  129.          this.colBG.beginFill(bgCol);
  130.          this.colBG.lineStyle(0,0,0);
  131.          this.colBG.lineTo(_loc4_,0);
  132.          this.colBG.lineTo(_loc4_,this.__height);
  133.          this.colBG.lineTo(_loc3_,this.__height);
  134.          this.colBG.endFill();
  135.       }
  136.    }
  137.    function setState(newState, transition)
  138.    {
  139.       var _loc6_ = this.owner.columns;
  140.       var _loc4_ = _loc6_.length;
  141.       if(newState != "normal" || !this.owner.enabled)
  142.       {
  143.          var _loc5_ = undefined;
  144.          if(!this.owner.enabled)
  145.          {
  146.             _loc5_ = this.owner.getStyle("disabledColor");
  147.          }
  148.          else if(newState == "highlighted")
  149.          {
  150.             _loc5_ = this.owner.getStyle("textRollOverColor");
  151.          }
  152.          else if(newState == "selected")
  153.          {
  154.             _loc5_ = this.owner.getStyle("textSelectedColor");
  155.          }
  156.          var _loc3_ = 0;
  157.          while(_loc3_ < _loc4_)
  158.          {
  159.             this.cells[_loc3_].setColor(_loc5_);
  160.             this.cells[_loc3_].__enabled = this.owner.enabled;
  161.             _loc3_ = _loc3_ + 1;
  162.          }
  163.       }
  164.       else
  165.       {
  166.          _loc3_ = 0;
  167.          while(_loc3_ < _loc4_)
  168.          {
  169.             this.cells[_loc3_].setColor(_loc6_[_loc3_].getStyle("color"));
  170.             this.cells[_loc3_].__enabled = this.owner.enabled;
  171.             _loc3_ = _loc3_ + 1;
  172.          }
  173.       }
  174.       super.setState(newState,transition);
  175.    }
  176.    function startEditCell()
  177.    {
  178.       var _loc2_ = this.grandOwner;
  179.       _loc2_.dontEdit = true;
  180.       _loc2_.releaseFocus();
  181.       delete _loc2_.dontEdit;
  182.       if(_loc2_.enabled && _loc2_.editable && this.owner.item != undefined)
  183.       {
  184.          var _loc9_ = this.owner.cells.length;
  185.          var _loc3_ = 0;
  186.          while(_loc3_ < _loc9_)
  187.          {
  188.             var _loc5_ = _loc2_.columns[_loc3_];
  189.             if(_loc5_.editable)
  190.             {
  191.                var _loc4_ = this.owner._xmouse - this.owner.cells[_loc3_]._x;
  192.                if(_loc4_ >= 0 && _loc4_ < _loc5_.__width)
  193.                {
  194.                   var _loc6_ = this.owner.rowIndex + _loc2_.__vPosition;
  195.                   _loc2_.setFocusedCell({itemIndex:_loc6_,columnIndex:_loc3_},true);
  196.                   if(this.wasPressed != true)
  197.                   {
  198.                      this.onPress();
  199.                      _loc2_.onMouseUp();
  200.                   }
  201.                   delete this.wasPressed;
  202.                   clearInterval(_loc2_.dragScrolling);
  203.                   delete _loc2_.onMouseUp;
  204.                   return undefined;
  205.                }
  206.             }
  207.             _loc3_ = _loc3_ + 1;
  208.          }
  209.       }
  210.    }
  211.    function bGOnPress(Void)
  212.    {
  213.       this.wasPressed = true;
  214.       this.grandOwner.pressFocus();
  215.       this.grandOwner.onRowPress(this.owner.rowIndex);
  216.    }
  217.    function notifyStyleChangeInChildren(sheetName, styleProp, newValue)
  218.    {
  219.       var _loc6_ = this.owner.columns;
  220.       var _loc4_ = this.cells.length;
  221.       var _loc3_ = 0;
  222.       while(_loc3_ < _loc4_)
  223.       {
  224.          var _loc2_ = this.cells[_loc3_];
  225.          if(_loc2_.stylecache != undefined)
  226.          {
  227.             delete _loc2_.stylecache.tf;
  228.          }
  229.          delete _loc2_.enabledColor;
  230.          _loc2_.invalidateStyle(styleProp);
  231.          _loc3_ = _loc3_ + 1;
  232.       }
  233.    }
  234. }
  235.